[iOS] iPhone Dev Sapporo 勉強会 に参加してきました!
2016年1月30日(土)、札幌で、iPhone Dev Sapporo (以下DevSap = デブサップ)主催の iOS 勉強会が開かれました。
iPhone Dev Sapporo勉強会 Jan, 2016 #devsap on Zusaar
会場は、札幌市営地下鉄・東札幌が最寄りのインタークロス・クリエイティブ・センター(ICC) Cross x Garden 。
当日は、20名近くの方々が参加されていました。
スタート
はじめに、DevSapを主催する、rakko entertainmentの若林さんから、開会の挨拶がありました。
続いて、Fangの福江さんから、今回の AirPlay を使ったスライドの投影方法等について説明がありました。
菅原 祐さん - 画像の圧縮について考える
Picosの菅原さんからの発表からスタート! 様々な種類のフォーマットの画像について、Twitter API サーバに対してどのような画像を送るすべきか、といった考察を話されていました。ただし、最近の Twitter の仕様変更により、ほぼすべての画像が JPEG になったそうですので、つい最近までの仕様ということになりますが、考察方法など含め、興味深い内容となっていました。
- Twitterクライアント Aplos for Twitter でどのように画像を扱うか
- Twitter に画像をアップした時にどのように圧縮されるかの検証
- ツイート画像の仕様
- PNG, GIF, JPEG, WebP
- アップは 3MB まで可
- 3MBを超えると JPEG に再圧縮
- 何ピクセルの画像をアップすべきか
- 各フォーマットで圧縮アルゴリズムが違う
- 元画像により圧縮率が変化し、事前の計算が困難
- 確実に 3MB を超えない
- 処理コストを抑える
- 結論
- 1辺が1024ピクセル以下のPNG, GIF, JPEG, WebPは3MBを超えることはない (透過PNG(PNG32)なら886ピクセル以下)
- 圧縮により無圧縮よりサイズが大幅に大きくなるのは考えづらい
- ただし、最近仕様が変わり、ほぼすべての画像がJPEGに変換されるように仕様変更された(PNG32を除く)
岸川 克己さん - Xcode7 コードカバレッジ
次は、Realm岸川さんから、Xcode 7 におけるコードカバレッジ機能について、お話がありました。 岸川さんには昨年、クラスメソッドが開催した勉強会に参加いただきました。
iOS 9 週連続 Bootcamp 1週目 レポート #cm_ios9 | Developers.IO
- Xcode 7 でのコードカバレッジの基本
- xcodebuild コマンドを使ったコードカバレッジ有効化の方法
- xcrun コマンドを使ったカバレッジ結果表示方法
- 外部サービス Coveralls - Test Coverage History & Statisticsを使ったコードカバレッジ表示方法
続けて、Realmの遅延ロードの仕組み等についてお話されました。
- Realm の基本
- クラス内でプロパティを定義するだけで、データモデルを定義できる
- 遅延ロードの仕組み
- 本当に必要になる時まで、実際にはメモリ上にデータは展開されない
- TechBooster - BOOTH(同人誌通販・ダウンロード)
山崎 誠さん - 技術書を書こう Re:VIEWの紹介
Realm・ウフィカの山崎さんから Re:VIEW のお話がありました。Re:VIEWは、独自のマークアップ言語をもつ電子書籍生成ツールです。
GitHubリポジトリ kmuto/review: Re:VIEW is flexible document format/conversion system
当日のスライド: Re:VIEWで技術書を書こう // Speaker Deck(当日のスライド)
- 書くためのテクニック、心構え
- マークアップされたテキストによる記述(Markdownのような)
- 様々な形式へ変換可能
- html, text, pdf, ePub, InDesign xml
- Re:VIEWを使っている商業誌は沢山ある
- Re:VIEWを使っている商業誌
- リストには、紙書籍が65、電子書籍が75
- Re:VIEWでできること
- 見出し、箇条書き、相互参照、図表と自動採番、ソースコード、リード文、コラム、囲み記事、注釈、実行結果の動的埋め込み
- 情報源
熊谷 友宏さん・リテラルと型について
熊谷さんは、EZ-NET プログラムステーションで積極的に情報を発信されています。また昨年、クラスメソッドが開催した勉強会に参加いただきました。
iOS 9 週連続 Bootcamp 6週目 レポート(UIKit & Xcode 7) #cm_ios9 | Developers.IO
当日は、Swift のリテラルと型についてのお話がありました。
- リテラル自体に型はない
- リテラルだけでは値は出来ない
- let value = nil
- [error] Type of expression is ambiguous with more context
- [ok] let value = nil as Int?
- [ok] let value: Int? = nil
- let value = nil
- 型がリテラルを引き受ける
- (IntegerLiteralConvertibleの例)
// IntegerLiteralConvertible を表明していれば enum MyVariant: IntegerLiteralConvertible { } // 整数リテラルを受け入れられる let value: MyVariant = 10
- 型が責任を持って値を作る
- nil は Optional型?
- Optional型が nil を空として扱う
-
StringInterpolationConvertible
-
参考資料
能登 要さん・iPhoneアプリの宣伝ムービーを作る
いります電算企画能登さんからは、ご自身が作成された、プロモーションムービーを作成するための、オープンソースな iOS アプリについてお話がありました。
- 端末のバッテリー量管理アプリGloriousBatteryのプロモーションムービー用に作成
- アプリのウォークスルー的な画面を容易に作成可能
- リソース画像を入れ替えれば、自分のアプリの画面を適用されたものを作成できる
- アプリ動作画面を QuickTime Player などで録画すれば、プロモーションムービーが簡単に作成可能
- GitHubリポジトリ PromotionForGloriousBattery
若林 大悟さん・Apple TV Tech Talks レポート
1月21日に東京都内で開かれた、Apple TV Tech Talks について、お話されました。
田宮 宙比己・LaunchKit + 近況報告
田宮からは、iOSアプリのリリース周りを管理できるウェブサービス LaunchKit についてと、普段クラスメソッドで、だいたいどのように働いているか等の、近況報告をお話しました。
DevSap飲み会!
アプリのことから仕事論、そして人生に至るまで、率直で貴重な意見を頂きました。私も長年参加させていただいていますが、改めて、DevSap は飾らずエキサイティングで貴重な場所だなと思いました。次回は3月に開催予定だそうです。ぜひ一度参加してみてはいかがでしょうか!